#include <iostream>
#include <math.h>
#include <string.h>
#include <queue>
#define int long long
using namespace std;



int cac(int n,int m,int k){
	int ans=0;
	for(int i=1;i<=n;i++){
		if(k%i != 0)
			continue;
		if(k/i <= m){
			ans += (n-i+1)*(m-(k/i)+1);
		}
	}
	return ans;
}



signed main(){
	int ans=0;
	int n,m,t;
	cin>>n>>m>>t;
	queue<int> q1;
	int a[n],b[n];
	for(int i=0;i<n;i++)
		cin>>a[i];
	int bi=0;
	int bs=0;
	for(int i=0;i<m;i++){
		cin>>b[i];
		if(b[i] == 0  &&  bi != 0){
			q1.push(bi);
			bi = 0;
			bs++;
		}
		else if(b[i] == 1){
			bi++;
		}
	}
	if(b[n-1] == 1){
		q1.push(bi);
		bi = 0;
		bs++;
	}
	
	int ai=0;
	for(int i=0;i<n;i++){
		if(a[i] == 0){
			for(int j=0;j<bs;j++){
				ans += cac(q1.front(),ai,t);
				q1.push(q1.front());
				q1.pop();
//				cout<<"["<<i<<"]"<<cac(,3,2)<<endl;
			}
			ai = 0;
		}
		else{
			ai++;
		}
	}
	if(a[n-1] == 1){
		for(int j=0;j<bs;j++){
			ans += cac(q1.front(),ai,t);
			q1.push(q1.front());
			q1.pop();
//			cout<<q1.front()<<endl;
//			cout<<"["<<i<<"]"<<cac(,3,2)<<endl;
		}
	}
	cout<<ans;
	return 0;
}


/*
5 6 4
1 0 0 1 1
0 1 0 1 1 0
*/
